|
![](/i/fill.gif) |
Patrick Elliott nous apporta ses lumieres en ce 2008/03/03 20:20:
> In article <47cb5fa6$1@news.povray.org>, tim### [at] comcast net says...
>> The center's a bit off, but this should work if
>> you don't cut it too deep.
>>
>> #local A = <-1,0,0>;
>> #local B = <1,0,0>;
>> #local C = <0,sqrt(2),0>;
>> #local D = <0,0,1>;
>> #local RAD = 0.075;
>>
>> #declare tetra = mesh {
>> triangle {A,B,C}
>> triangle {B,C,D}
>> triangle {C,D,A}
>> triangle {D,A,B}
>> inside_vector (A+B+C+D)/4
>> translate <0,0,-RAD>
>> }
>>
>> #declare octaside = union {
>> sphere {A,RAD}
>> sphere {B,RAD}
>> sphere {C,RAD}
>> cylinder {A,B,RAD}
>> cylinder {C,B,RAD}
>> cylinder {A,C,RAD}
>> object{tetra}
>> rotate <45,0,0>
>> translate <0,0,-1>
>> };
>>
>> #declare pyramid = union {
>> object {octaside}
>> object {octaside rotate <0,90,0>}
>> object {octaside rotate <0,180,0>}
>> object {octaside rotate <0,270,0>}
>> };
>>
>> #declare octagon = union {
>> object {pyramid}
>> object {pyramid rotate <180,0,0>}
>> };
>>
> Strictly speaking, the last version I posted was intended to be 100%
> solid, with ior for crystal. The version works fine, as a solid color,
> where I only plan to cut into the surface a bit to leave behind color.
> I.e., when I don't need 100% of it to be solid. The problem here is, I
> am not sure the result is what it *should* look like for a solid
> crystal. I threw together the scene rather quickly, so I don't know if
> the odd streaking is a result of the shape, the simple scene, or
> mistakes in my merges. :(
>
It contain an inner cavity. The top and bottom meshes intersect. The 4 meshes of
the top never meet, creating a large cross shaped opening. If you want a
transparent octaedron, you must fill that, in addition to using merge.
If you look at the way I proposed (intersection of planes), you'll see that
there are no iner opening.
#declare SQ = sqrt(2);
#declare Octabase =//create the base solid octaedron
intersection{plane{<0,1,SQ>,1
plane{<0,1,SQ>,1 }
plane{<0,1,SQ>,1 }
plane{<0,1,SQ>,1 }
plane{<0,-1,SQ>,1}
plane{<0,-1,SQ>,1 rotate<0,90,0>}
plane{<0,-1,SQ>,1 rotate<0,180,0>}
plane{<0,-1,SQ>,1 rotate<0,270,0>}
}
#local Cut = SQ; //adjust for larger or smaller flatening of edges
#declare CutOctaedron =
intersection{
object{Octabase}// each of the next 3 box cut 4 edges
box{<Cut,2,Cut>,<-Cut,-2,-Cut>}
box{<2,Cut,Cut>,<-2,-Cut,-Cut>rotate<45,45,0>}
box{<2,Cut,Cut>,<-2,-Cut,-Cut>rotate<-45,-45,0>}
box{Cut, -Cut rotate 45*y}//to cut the remaining tips
//last box is optional
}
--
Alain
-------------------------------------------------
Moonies: Only really happy shit happens.
Post a reply to this message
|
![](/i/fill.gif) |